The invention relates to digital data compression using content addressable memory devices.
During the last 15 years, emulation devices used to debug microcontroller code have gained in popularity. The emulator, as the test instrument, gives the user ability to see what is going on inside the microcontroller silicon. Quite often, the emulator has a special emulation chip, called a xe2x80x9cbond-outxe2x80x9d, that is performing the normal tasks of the real microcontroller while also bringing out the internal signals from the silicon so they can aid in the debugging by giving visibility to internal buses.
Lately, the demand for lower cost of the emulation chip as well as of the emulator has resulted in a need for solutions where the actual real customer silicon is used for the emulation. This leads to a struggle between silicon cost and emulation features, which results in very few pins carrying as much information as possible.
Currently, two different schemes are used. In a first scheme, only some of the information is transmitted as xe2x80x9cpackagesxe2x80x9d out of the silicon on a few pins. This may require the silicon to actually stall execution not to lose information. In a second scheme, selected parts of the information, such as every fourth program counter, are transmitted out, resulting in ambiguity due to the face that the program counter values that are in between never come out.
The object of the invention is to provide real-time, no-loss transmittal of user-selected information to be transferred over vew few IC pins with no limit to the input data which should be studied inside the silicon.
This invention brings out internal signals from a silicon device under test such as a microcontroller at real-time using a content addressable memory delivering an output bit pattern to as few IC pins as possible, a requirement for the modern microcontroller debug industry. The invention applies to so-called xe2x80x9csoft coresxe2x80x9d which typically are implemented in FPGA""s and CPLD""s, ASIC designs, as well as real microcontroller architectures.
The invention relies upon the occurrence of characteristic bit patterns to be generated repeatedly in data communications between a device under test and a tester. This allows a large number of bits of the characteristic bit pattern to be compressed by using a content addressable memory, CAM hereafter, to translate a large bit pattern to a small bit pattern, say as few bits as five, i.e. a token, while still allowing the emulation user to see and understand what is going on inside the device under test.